\documentclass{l3doc}
\usepackage{ctex}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{choices}
\usepackage{varwidth}      % 获得宽度
\usepackage{graphicx}
\title{\bfseries\pkg{choices}：选项排版宏包}
\author{夏康玮\\ \path{kangweixia_xdyy@163.com}}
\date{2022-01-25\quad v3.2.3 \thanks{\url{https://github.com/xkwxdyy/choice-l3}}\thanks{\url{https://gitee.com/xkwxdyy/choice-l3}}}


\lstnewenvironment{LaTeXdemo}[1][0.4]{
  \lstset{
    basicstyle         = \ttfamily\small,
    basewidth          = 0.51em,
    backgroundcolor    = \color{cyan!10},
    % rulecolor          = \color{red!10},
    frame              = shadowbox,
    frameround         = tttt,
    % framerule          = 0pt,
    gobble             = 2,
    tabsize            = 2,
    numbers            = left,
    language           = [LaTeX]TeX,
    linewidth          = #1\linewidth
  }
}{}
\ExplSyntaxOn
\dim_new:N \g__LaTeXautodemo_width_dim
\box_new:N \g__LaTeXautodemo_width_measure_box
\makeatletter
\lst@RequireAspects{writefile}
\newsavebox\LaTeXautodemo@box
\lstnewenvironment{LaTeXautodemo}[1][code and example]
  {%
    \global\let\lst@intname\@empty
    \edef\LaTeXautodemo@end{%
      \expandafter\noexpand\csname LaTeXautodemo@@#1@end\endcsname
    }%
    \@nameuse{LaTeXautodemo@@#1}%
  }
  {
    \LaTeXautodemo@end
  }
\newcommand\LaTeXautodemo@new[3]{%
  \@namedef{LaTeXautodemo@@#1}{#2}%
  \@namedef{LaTeXautodemo@@#1@end}{#3}%
}
\newcommand*\LaTeXautodemo@common{%
  \setkeys{lst}
    {%
      basicstyle         = \ttfamily\small,
      basewidth          = 0.51em,
      backgroundcolor    = \color{cyan!10},
      % rulecolor          = \color{red!10},
      frame              = shadowbox,
      frameround         = tttt,
      % framerule          = 0pt,
      gobble             = 2,
      tabsize            = 2,
      numbers            = left,
      language           = [LaTeX]TeX,
      % linewidth          = 0.7\linewidth
    }%
}
\newcount\LaTeXautodemo@count
\newcommand*\LaTeXautodemo@input{%
  \catcode`\^^M = 10\relax
  \input{\jobname-\number\LaTeXautodemo@count.tmp}%
}
\LaTeXautodemo@new{code and example}{%
  \setbox\LaTeXautodemo@box=\hbox\bgroup
    \global\advance\LaTeXautodemo@count by 1 %
    \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXautodemo@count.tmp}   % 将内容存在中途文件里面
    \LaTeXautodemo@common
}{%
    \lst@EndWriteFile
  \egroup
  \hbox_set:Nn \g__LaTeXautodemo_width_measure_box
    {
      \begin{varwidth}{\hsize}
        \usebox\LaTeXautodemo@box
      \end{varwidth}
    }
  \dim_set:Nn \g__LaTeXautodemo_width_dim { \box_wd:N \g__LaTeXautodemo_width_measure_box }
  % \lstset
  % 	{
  % 		linewidth = \dim_use:N \l__LaTeXautodemo_width_dim
  % 	}
  \begin{center}
    \dim_compare:nNnTF { \g__LaTeXautodemo_width_dim } > { 0.4\linewidth}
      {
        % \dim_use:N \g__LaTeXautodemo_width_dim
        \begin{minipage}{\linewidth}
          % \setkeys{lst}{ linewidth = \dim_use:N \l__LaTeXautodemo_width_dim }
          \usebox\LaTeXautodemo@box
        \end{minipage}%
        \par
        \begin{minipage}{\linewidth}
          \LaTeXautodemo@input
        \end{minipage}
      }
      {
        \begin{minipage}{0.4\linewidth}
          \usebox\LaTeXautodemo@box
        \end{minipage}%
        \hfil
        \begin{minipage}{0.4\linewidth}
          \LaTeXautodemo@input
        \end{minipage}%
      }
    % \ifdim\wd\LaTeXautodemo@box > 0.48\linewidth
    %   \begin{minipage}{\linewidth}
    %     \usebox\LaTeXautodemo@box
    %   \end{minipage}%
    %   \par
    %   \begin{minipage}{\linewidth}
    %     \LaTeXautodemo@input
    %   \end{minipage}
    % \else
    %   \begin{minipage}{0.48\linewidth}
    %     \LaTeXautodemo@input
    %   \end{minipage}%
    %   \hfil
    %   \begin{minipage}{0.48\linewidth}
    %     \usebox\LaTeXautodemo@box
    %   \end{minipage}%
    % \fi
  \end{center}
}
\LaTeXautodemo@new{code and float}{%
  \global\advance\LaTeXautodemo@count by 1 %
  \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXautodemo@count.tmp}%
  \LaTeXautodemo@common
}{%
  \lst@EndWriteFile
  \LaTeXautodemo@input
}
\LaTeXautodemo@new{code only}{\LaTeXautodemo@common}{}
\makeatother
\ExplSyntaxOff

\renewcommand{\emph}[1]{\begingroup \bfseries \textcolor{red!80}{#1} \endgroup}
\NewDocumentCommand{\init}{+v}{\hspace{\fill}初始值~=~\textcolor{blue}{\bfseries#1}}
\DeclareDocumentCommand\kvopt{mm}
  {\texttt{#1\breakablethinspace = \breakablethinspace#2}}
\def\breakablethinspace{\hskip 0.16667em\relax}
\ExplSyntaxOn
\NewDocumentCommand{ \remark }{ +m }{
  \group_begin:
    \centering
    \color{violet}
    #1
  \group_end:
}
\ExplSyntaxOff

\begin{document}
\maketitle
\tableofcontents

\begin{documentation}
\section{宏包简介}
\pkg{choices}宏包是一个用于排版选项的宏包, 包含但不限于以下特点：
\begin{enumerate}
  \item 可以排版任意数量的选项
  \item 可以方便切换标签风格\meta{label-style}
  \item 可以更改标签\meta{label}与内容的相对位置
  \item 可以调整标签\meta{label}的偏移
  \item 自动识别是否使用 \tn{includegraphics} 命令 或 \tn{includesvg} 并自行调整 \cmd{anchor} 的位置（仅 \tn{choices*} 有此功能,  之所以会有 \tn{choices*} 命令, 就是因为基于 \env{hlist} 环境的 \tn{choices} 只有一个方位, 无法更改, 所以需要用另外的方法处理（ \tn{choices*} 是用 \cmd{coffin} 进行处理））.
  \emph{
    此功能的实现需要将 \pkg{expl3} 宏包更新至最新（至少是2021-11-12后）, 否则可能无法使用且会报错.
  }
\end{enumerate}

在需要排版选项的情况中（比如试卷、问卷排版等）\pkg{choices}宏包可以发挥重要作用, 旨在让用户更多关注在内容本身, 契合\LaTeX{}的内容与样式分离的思想. 

\pkg{choices}宏包是基于\env{hlist}环境与\LaTeX3开发的\LaTeX 宏包, 它提供了\tn{choices(*)} 两个主命令与\tn{coffinchoice}、\tn{hlistchoice}和\tn{quan}三个副命令. 

\tn{choices}和\tn{choices*}是利用了\pkg{xparse}宏包对\tn{hlistchoice}与\tn{coffinchoice} 命令进行封装. 其中\tn{choices}等效于\tn{hlistchoice}, \tn{choices}等效于\tn{coffinchoice}. 

通常情况下使用 \tn{choices} 命令就够了, 但是用户如果有排版图片的需求, 可能需要将 \meta{label} 置于内容的上方或下方, 而 \tn{choices} 命令基于 \env{hlist} 环境编写, 所以 \meta{label} 只能置于内容的左侧, 这个时候只需要使用\tn{choices*}, 会自动更改 \cmd{anchor} 为 \cmd{south}, 如果需要修改自动的 \cmd{anchor} 为其它的方位可以使用
\begin{LaTeXdemo}
  \choicesetup{
    autopic = north
  }
\end{LaTeXdemo}

\section{宏包开发背景}
已经存在用 \href{https://www.latexstudio.net/index/details/index/mid/2270.html}{\pkg{ifthen}宏包}或者用 \href{https://www.latexstudio.net/index/details/index/mid/2191.html}{\pkg{xcoffins}宏包}写的相关选项命令, 用于排版试卷中的选择题, 常见的形如\tn{xx\marg{arg1}\marg{arg2}\marg{arg3}\marg{arg4}}, 但是有几个不足:
\begin{enumerate}
  \item 这样定义的命令只能且必须接受四个参数
    \begin{itemize}
      \item 如果输入少于四个, 那么就会有空白项出现, 比如\verb*|D.  |
      \item 如果想要输入多于四个固然可以用同样的方式再定义相应的命令, 但是可能事先并不知道有多少个选项, 通常的解决办法是先建立很多个命令分别作用于$1, 2, \cdots, 9$个命令, 比较麻烦不够简洁, 而且问题又来了: 通常的LaTeX命令参数最多有9个, 如果有排版更多项的需求时, 以前的做法显然行不通, \emph{所以希望存在一个相同接口的命令, 可以排版任意个选项.}
    \end{itemize}
  \item 从代码角度看, 已有命令的代码并不简洁, 希望可以进行优化.
  \item 已有的代码并没有解决 \meta{label} 样式（arabic, roman等）切换问题, 而且“ABCD”往往是手动输入封装成命令, 所以希望存在一个命令可以方便地切换标签样式.
\end{enumerate}



\section{用户接口}

% \emph{ 请将 \pkg{expl3} 宏包更新至最新（至少是2021-11-12后）, 否则可能无法使用 \pkg{choices} 宏包 }
\subsection{主要命令}

\begin{function}[added = 2021-12-18,updated = 2021-12-25]{\choices, \choices*}
  \begin{syntax}
    |\choices| \oarg{键值列表} \marg{内容}
    |\choices*| \oarg{键值列表} \marg{内容}
  \end{syntax}
  \marg{内容} 中不同选项用 \verb|&&| 分隔, 且必须是两个, 只用一个会报错. 有两点需要注意: 
    \begin{itemize}
      \item 之所以用两个 \& 作为分隔符是考虑到可能出现使用 \env{align} 或 \env{tabular} 等需要使用\&的环境的情况, 如果使用一个 \& 作为分隔符可能会“误伤”
      \item 在选项中可正常通过 \verb|\&| 排版 \& 符号
      \item 在内容的结尾是否添加 \verb|&&|都不会造成空白项（会经过函数过滤）
    \end{itemize}
\end{function}

\begin{function}[added = 2021-12-23]{\choicesetup}
  \begin{syntax}
    |\choicesetup| \marg{键值列表}
  \end{syntax}
  宏包相关键值的设置, 影响使用该命令后面的\tn{choices(*)}命令的相关初始值. 详细键值说明见 \ref{subsec:键值说明}.
\end{function}



\subsection{辅助命令}

\begin{function}[added = 2021-12-18, updated = 2021-12-22]{\hlistchoice}
  \begin{syntax}
    |\hlistchoice| \oarg{键值列表} \marg{内容}
  \end{syntax}
  基于 \env{hlist} 环境写的选项排版命令, 可直接使用, 等效于\tn{choices}.
\end{function}

\begin{function}[added = 2021-12-21, updated = 2021-12-22]{\coffinchoice}
  \begin{syntax}
    |\coffinchoice| \oarg{键值列表} \marg{内容}
  \end{syntax}
  基于 \LaTeX3 的 \pkg{coffin} 模块写的选项排版命令, 可直接使用, 等效于\tn{choices*}.
\end{function}

\begin{function}[added = 2021-12-21]{\quan}
  \begin{syntax}
    |\quan| \marg{number}
  \end{syntax}
  基于 \pkg{tikz} 宏包绘制的带圈数字命令, 根据数字大小判断进行水平垂直方向的压缩, 可单独使用. 
  \lstset{ linewidth = 0.4\linewidth }
  \begin{LaTeXautodemo}
    \quan{6} \quan{66} \quan{666}
  \end{LaTeXautodemo}
\end{function}


\subsection{\pkg{choices}宏包相关的键值说明}\label{subsec:键值说明}
若出现一个 \meta{key} 下面有相类似的\meta{key}, 比如 \cmd{colsep} 与 \cmd{col-sep}, 是笔者为了不增加用户的记忆负担, 设置了多个等效键值, 甚至用户可以在 \file{choice.sty} 中修改源码, 仿照作者的做法, 添加自己喜欢的键值, 不过最好有一定 \LaTeX3 基础, 当然也欢迎联系作者\footnote{kangweixia_xdyy@163.com}、到仓库中\href{https://github.com/xkwxdyy/choice-l3/issues}{提issue} 等多种方式与作者联系. 

\subsubsection{\tn{choices}与\tn{choices*}作用均有效的键值}
\begin{function}[updated = 2022-01-11]{label-style}
  \begin{syntax}
    label-style = \meta{arabic, alph, Alph, roman, Roman, quan, chinese} \init{Alph}
  \end{syntax}
  设置标签的风格: 
  \begin{itemize}
    \item arabic: 阿拉伯数字
    \item alph: 小写英文
    \item Alph: 大写英文
    \item roman: 小写罗马数字
    \item Roman: 大写罗马数字
    \item quan: 带圈数字
    \item chinese: 中文数字
    % \item none: 没有计数的空白效果
  \end{itemize}
\end{function}


\begin{function}[updated = 2022-01-09]{items}
  \begin{syntax}
    |items| = \meta{number}
  \end{syntax}
  手动设置每行排多少项(否则会根据选项宽度自动排版)
\end{function}

\begin{function}[updated = 2022-01-09]{pre-label}
  \begin{syntax}
    |pre-label| = \marg{sth placed before label} \init{{}}
  \end{syntax}
  标签后的相关设置, 类似于 \pkg{hlist} 宏包的 \cmd{pre label}, 默认是空. 
\end{function}

\begin{function}[updated = 2022-01-09]{post-label}
  \begin{syntax}
    |post-label| = \marg{sth placed after label} \init{{.}}
  \end{syntax}
  标签后的相关设置, 类似于 \pkg{hlist} 宏包的 \cmd{post label}, 默认是加一个点, 产生效果为|A.|
  \cmd{label-style} 设置为 \cmd{quan} 的时候会默认把 \cmd{poslabel}的点去掉, 符合主流习惯.
\end{function}

\begin{function}[added = 2021-12-25, updated = 2022-01-09]{random-items}
  \begin{syntax}
    |random-items| = \meta{true, false} \init{false}
  \end{syntax}
  控制选项是否进行乱序显示, 此键值只能通过 \tn{choicesetup} 使用, 作用范围为更改后的所有命令.
\end{function}



\subsubsection{仅对\tn{choices*}产生效果的键值}
\remark{
  下面所说的键值如果作用在\tn{choices}上并不会报错, 但不会产生作用, 这么设计是为了方便用户在\tn{choices}与\tn{choices*}两个命令之间自由切换而不用考虑这个键值.
}
\begin{function}[updated = 2021-12-23]{anchor}
  \begin{syntax}
    |anchor| = \meta{方位} \init{west}
  \end{syntax}
  标签与内容的相对位置（有\pkg{tikz}基础的用户容易理解, 其他用户可以设置不同的 \cmd{anchor} 查看效果也能很快理解）
  \begin{itemize}
    \item north
    \item south
    \item east
    \item west
    \item northwest
    \item northeast
    \item southeast
    \item southwest
  \end{itemize}
\end{function}


\begin{function}[added = 2021-12-25, updated = 2022-01-09]{autopic-anchor}
  \begin{syntax}
    |autopic-anchor| = \meta{方位} \init{south}
  \end{syntax}
  \pkg{choices} 宏包设置了检测是否内容中包含 \tn{includegraphics} 命令并自动进行 \kvopt{\meta{anchor}}{\meta{方位}} 的设置, 默认是\kvopt{\meta{anchor}}{\meta{south}}, 更改 \cmd{autopic-anchor} 的值可更改默认方位.
  注意这个键值要使用 \tn{choicesetup} 进行更改, 如
  \lstset{ linewidth = 0.4\linewidth }
  \begin{LaTeXdemo}
    \choicesetup{
      autopic-anchor = north
    }
  \end{LaTeXdemo}
  作用范围为在所有更改后的命令上.
\end{function}
\begin{function}{align}
  \begin{syntax}
    |align| = \meta{left, center, right} \init{center}
  \end{syntax}
  选项的对齐方式:
  \begin{itemize}
    \item left: 左对齐
    \item center: 居中
    \item right: 右对齐
  \end{itemize}
\end{function}


\begin{function}{xshift}
  \begin{syntax}
    |xshift| = \meta{dimension}
  \end{syntax}
  % 在不修改 \cmd{align} （即默认使用\kvopt{\meta{align}}{\meta{center}}）的情况下, 增加列之间的距离, 与下方的 \cmd{colsep} 的区别是使用 \cmd{xshift} 整体会偏移
  整体的水平偏移量.
\end{function}

\begin{function}[updated = 2021-12-25]{yshift}
  \begin{syntax}
    |yshift| = \meta{dimension}
  \end{syntax}
  整体的垂直偏移量.
\end{function}

\begin{function}[added = 2021-12-25, updated = 2022-01-09]{below-sep}
  \begin{syntax}
    |below-sep| = \meta{dimension}
  \end{syntax}
  \cmd{item} 的垂直下方偏移量, 每一项都会作用. 可以形成“每个选项下方都有留白”的效果, 可以用作给学生留白书写等.
  % 如果想要整体上下移动, 请使用 \cmd{topsep} 和 \cmd{bottomsep}.
\end{function}

\begin{function}{label-xshift}
  \begin{syntax}
    |label-xshift| = \meta{dimension}
  \end{syntax}
  标签 \cmd{label} 的水平偏移量.
\end{function}

\begin{function}{label-yshift}
  \begin{syntax}
    |label-yshift| = \meta{dimension}
  \end{syntax}
  标签 \cmd{label} 的垂直偏移量.
\end{function}

\begin{function}[updated = 2022-01-09]{top, top-sep}
  \begin{syntax}
    |top| = \meta{dimension}
    |top-sep| = \meta{dimension}
  \end{syntax}
  整体与上方内容的垂直偏移量.
\end{function}


\begin{function}[updated = 2022-01-09]{bottom, bottom-sep}
  \begin{syntax}
    |bottom| = \meta{dimension}
    |bottom-sep| = \meta{dimension}
  \end{syntax}
  整体与下方内容的垂直偏移量.
\end{function}


\begin{function}[updated = 2022-01-09]{row-sep}
  \begin{syntax}
    |row-sep| = \meta{dimension}
  \end{syntax}
  第一行保持不动, 下方行之间额外的垂直间距偏移.
\end{function}

\begin{function}[updated = 2022-01-09]{col-sep, item-sep}
  \begin{syntax}
    |col-sep| = \meta{dimension}
    |item-sep| = \meta{dimension}
  \end{syntax}
    \begin{itemize}
      \item 在不修改 \cmd{align} （即默认使用\kvopt{\meta{align}}{\meta{center}}）的情况下, 列之间额外的水平间距偏移（效果类似于 \tn{hfill} 的感觉）. 
      \item \kvopt{\meta{align}}{\meta{left}} 的时候保持第一列不动, 列之间额外的水平间距偏移. 
    \end{itemize}
\end{function}

% \begin{function}{firstcolumnsep, firstcolumn-sep, firstcolsep, firstcol-sep}
% 	\begin{syntax}
% 		|firstcolumnsep| = \meta{dimension}
% 		|firstcolumn-sep| = \meta{dimension}
% 		|firstcolsep| = \meta{dimension}
% 		|firstcol-sep| = \meta{dimension}
% 	\end{syntax}
% 		\begin{itemize}
% 			\item 在 \kvopt{\meta{align}}{\meta{center}} 或 \kvopt{\meta{align}}{\meta{left}} 的情况下, 保持列之间的距离然后整体的水平偏移量; 
% 			\item 如果是 \kvopt{\meta{align}}{\meta{right}}, 就像遇到一堵墙, \cmd{item} 遇到后会往下走（用户可自行试验）.
% 		\end{itemize}
% \end{function}




\section{效果展示}
仅展示部分常用\kvopt{\meta{key}}{\meta{value}}的效果, 其余的欢迎用户自行编译查看效果, 体验更佳.

\subsection{基本的选项排版}
\lstset{ linewidth = 0.4\linewidth }

\begin{LaTeXautodemo}
  \choices{
    item1 &&
    item2 &&
    item3 &&
    item4
  }
\end{LaTeXautodemo}
% \choices{
% 	item1 &&
% 	item2 &&
% 	item3 &&
% 	item4
% }
\begin{LaTeXautodemo}
  \choices[label-style = arabic]{
    item1 &&
    item2 &&
    item3 &&
    item4
  }
\end{LaTeXautodemo}
% \choices[label-style = arabic]{
% 	item1 &&
% 	item2 &&
% 	item3 &&
% 	item4
% }

\begin{LaTeXautodemo}
  \choices[label-style = alph]{
    item1 &&
    item2 &&
    item3 &&
    item4 
  }
\end{LaTeXautodemo}
% \choices[label-style = alph]{
% 		item1 &&
% 		item2 &&
% 		item3 &&
% 		item4 
% 	}
\begin{LaTeXautodemo}
  \choices[label-style = Alph]{
    item1 &&
    item2 &&
    item3 &&
    item4 
  }
\end{LaTeXautodemo}
% \choices[label-style = Alph]{
% 		item1 &&
% 		item2 &&
% 		item3 &&
% 		item4 
% 	}
\begin{LaTeXautodemo}
  \choices[label-style = roman]{
    item1 &&
    item2 &&
    item3 &&
    item4 
  }
\end{LaTeXautodemo}
% \choices[label-style = roman]{
% 		item1 &&
% 		item2 &&
% 		item3 &&
% 		item4 
% 	}
\begin{LaTeXautodemo}
  \choices[label-style = Roman]{
    item1 &&
    item2 &&
    item3 &&
    item4 
  }
\end{LaTeXautodemo}
% \choices[label-style = Roman]{
% 		item1 &&
% 		item2 &&
% 		item3 &&
% 		item4 
% 	}
\begin{LaTeXautodemo}
  \choices[label-style = quan]{
    item1 &&
    item2 &&
    item3 &&
    item4 
  }
\end{LaTeXautodemo}
% \choices[label-style = quan]{
% 		item1 &&
% 		item2 &&
% 		item3 &&
% 		item4 
% 	}



\subsection{任意个选项排版}

\lstset{ linewidth = 0.3\linewidth }

\begin{LaTeXautodemo}
  \choices{
    item1 &&
    item2 &&
    item3 &&
    item4 &&
    item5 &&
    item6 &&
    item7 
  }
\end{LaTeXautodemo}

% \choices{
% 	item1 &&
% 	item2 &&
% 	item3 &&
% 	item4 &&
% 	item5 &&
% 	item6 &&
% 	item7 
% }

\begin{LaTeXautodemo}
  \choices[items = 2]{
    item1 &&
    item2 &&
    item3 &&
    item4 &&
    item5 &&
    item6 &&
    item7 
  }
\end{LaTeXautodemo}

% \choices[items = 2]{
% 	item1 &&
% 	item2 &&
% 	item3 &&
% 	item4 &&
% 	item5 &&
% 	item6 &&
% 	item7 
% }



\subsection{排版图片}
\lstset{ linewidth = 0.8\linewidth }
\begin{LaTeXautodemo}
  \choices*{
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
  }
\end{LaTeXautodemo}

% \choices*[bottom = 1em]{
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% }

\begin{LaTeXautodemo}
  \choices*[label-style = alph]{
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
  }
\end{LaTeXautodemo}

% \choices*[label-style = alph, bottom = 1em]{
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% }

\begin{LaTeXautodemo}
  \choices*[anchor = south, label-style = roman]{
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
  }
\end{LaTeXautodemo}

% \choices*[anchor = south, label-style = roman, bottom = 0.5em]{
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% }

\begin{LaTeXautodemo}
  \choices*[anchor = north, label-style = Roman]{
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
  }
\end{LaTeXautodemo}

% \choices*[anchor = north, label-style = Roman, bottom = 0.5em]{
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% }

\begin{LaTeXautodemo}
  \choices*[anchor = east, label-style = quan, col-sep = -2em]{
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
    \includegraphics[width = 2cm]{example-image-a} &&
  }
\end{LaTeXautodemo}

% \choices*[anchor = east, label-style = quan, colsep = -2em]{
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% 	\includegraphics[width = 2cm]{example-image-a} &&
% }
\end{documentation}
\end{document}
